batファイルでPC名称の変更方法を解説

このQ&Aのポイント
  • batファイルを使用してPC名称を変更する方法について解説します。
  • 英数字のみの場合は問題なく変更できますが、ハイフンが含まれる場合はエラーが発生します。
  • batファイルのみを使用してPC名称を変更したい場合の注意点と、ハイフンを含む場合の対処方法について詳しく説明します。
回答を見る
  • ベストアンサー

batファイルでPC名称の変更

お世話になります。 今batファイルでPC名称を変更できるようにしているのですが 英数字のみなら下記でいけるのですが「-」が入ると「Verbスイッチが無効です」 と出て変更できません。 どなたかいい方法はご存知でしょうか? 尚業務上の使用のためbatファイルのみでやりたいのでその他ソフトは使用不可です。 echo PC名称を入力してください echo 例:PCNAME set /p Pcname=入力: rem 入力値の確認 echo *************************************** echo  PC名称確認 echo. echo  PC名称は[ %Pcname% ]です echo. echo *************************************** echo 0:PC名称の修正 echo [0]以外を入力した場合はYesになります echo *************************************** rem set Slt=nul set /p Slt=確認入力: if '%Slt%'=='0' goto loop echo PC名称を設定します。しばらくお待ちください。 wmic ComputerSystem WHERE "name='%computername%'" Call Rename %Pcname よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • pakuti
  • ベストアンサー率50% (317/631)
回答No.1

wmic ComputerSystem WHERE "name='%computername%'" Call Rename %Pcname の、%Pcnameを、ダブルクォーテーションで括ればいけるのでは?(未確認)

kunihiro666
質問者

お礼

すいません。 単純なことでしたw ありがとうございました。

関連するQ&A

  • コンピュータ名変更・ドメイン参加を同時にしたい

    @echo off set /p INP="コンピュータ名を入力して下さい >" echo コンピュータ名を%INP%に変更・ドメイン参加をします。 rem ドメイン参加 wmic ComputerSystem WHERE name="%computername%" CALL JoinDomainOrWorkgroup Name="DomainName" Username="UserName" Password="PassWord" FJoinOptions=3 rem PC名変更 wmic computersystem where name="%computername%" call rename name=%INP% echo パソコンを再起動します。 pause rem 1秒後に再起動 shutdown -t 1 -r exit 上記をバッチでやろうとしているのですが、コンピューター名が変更出来ません。 ドメインは参加できています。色々試してみましたがわかりません。 何卒、宜しくお願い致します。

  • batファイル コマンド

    batファイルでSetを使用して変数を代入してそれをechoでテキストファイルに記載させようとしているのですが、なぜか記載できていません。 何故でしょうか?回答よろしくお願いします。 (例) set TEST=SUCCESS echo %TEST% %COMPUTERNAME%>> "%~dp0%\TEST.txt" 作成されたTEST.txtを開くと 「KAISYA_PC」【※PC名】と入力されており変数TESTの値「SUCCESS」が 入っていません。

  • 連番で名前をつけるbatファイルについて!

    このバッチファイルについて解説よろしくおねがいします。 (*´ω`*) まだbatファイルをあまりいじったことないので 所見でパッとかけないのですが、 何回かかいて覚えるしかないですかね? よろしくおねがいします。(*´ω`*) 連番を付けた複数ファイルを一瞬で作成する https://pc-automation.tech/wp/make-sequence-number-files/ @echo off set /p filename="ファイル名を入力してください:" set /p extension="拡張子を入力してください:" set /p number="ファイル数を入力してください:" setlocal enabledelayedexpansion for /l %%n in (1,1,%number%) do ( set num=0%%n set num=!num:~-2,2! type nul > !num!_%filename%.!extension! ) endlocal

  • bat サブルーチンのERRORLEVELについて

    バッチのサブルーチンのERRORLEVELについて質問です。 サブルーチン内でERRORLEVELを返すコマンドを実行したいのですが、 親ルーチンにそのERRORLEVELを共有したくない場合、何か方法はありますか? ============================================================ [1.bat] SET MSG1="NOTFOUND" SET MSG2="found!" echo %ERRORLEVEL% FIND %MSG1% 2.bat REM %ERRORLEVEL%は1に echo %ERRORLEVEL% CALL :LOG echo %ERRORLEVEL% FIND %MSG2% 2.bat REM %ERRORLEVEL%は0に echo %ERRORLEVEL% CALL :LOG echo %ERRORLEVEL% REM %ERRORLEVEL%は0であって欲しいが0に pause EXIT 1 :LOG FIND %MSG1% hogehoge.log REM %ERRORLEVEL%は1に ============================================================ [2.bat] found! ============================================================ [hogehoge.log] 空 ============================================================

  • batの検証依頼

    現在、batを作成中です。 ターゲットが巨大HDD(2TB)のディスクをbatで読み込んで処理中ですが 処理時間が10分程度必要なのでHDDで何度もトライ&エラーで処理するのは効率的ではありません。 しかも、処理を何度も行うとHDDに負担がかかる。 そこで、以下のコードで問題ないか コードを検証してもらえないでしょうか? 長い文字列(フルパス)が何度も出てきて読みにくいので変数で処理すべきでしょうが 自分のコード作成能力上間違いが少ない方法を選んでいます。 コメントをたくさん入れたのでどんな事をやりたいかはご理解願えると思いますが 不明な点は追加で説明いたします。 コードに不都合な点あれば、修正していただければ幸いです。 ’-------------------------------------------------------------------- REM ドライブレターの全フォルダー名のみを階層を含めて出力 REM ドライブ直下のファイル名(フルパス)の出力にも対応 REM ---------------------------------------------------- @echo off set /p D="ドライブを入力してください <例> x --> " cd /d %D%: REM サーチ先のドライブに移動して以下の作業を行う(書き出しもサーチ先になる) REM -- ドライブレターの全フォルダー名のみを階層を含めて出力 REM -- ドライブ直下のファイル名は出力しない dir /b /ad /s>temp1.txt REM -- /d ドライブ直下のファイル名のみを出力 (a-d ドライブ直下のファイル名のみ出力) dir /b /d >temp2.txt REM ファイル結合してコピー REM C:\UsersTAC_\Desktop\Mp3_MergeDrive\ ---> BATがあるフォルダを表す copy /Y temp2.txt + temp1.txt C:\UsersTAC_\Desktop\Mp3_MergeDrive\temp.txt REM tempファイル削除 del /Q temp1.txt del /Q temp2.txt REM 出力ファイルをソート sort /o C:\UsersTAC_\Desktop\Mp3_MergeDrive\temp.txt C:\UsersTAC_\Desktop\Mp3_MergeDrive\temp.txt rename C:\UsersTAC_\Desktop\Mp3_MergeDrive\temp.txt C:\UsersTAC_\Desktop\Mp3_MergeDrive\FileName_ListUp.txt REM ------------------------------------------------ REM Vol1, Vol2, Vol3という変数にボリューム名をセット set Vol1=K-N set Vol2=456 set Vol3=789 REM IDという変数を空でセット set ID= REM wmicコマンドでHDDのvolumenumberを取得し、findコマンドでVol1, Vol2, Vol3の値を検索 REM errorlevelの値に応じて、IDという変数にX, Y, Zの値をセット wmic logicaldisk get volumename | find "%Vol1%" if errorlevel 0 if not errorlevel 1 set ID=X wmic logicaldisk get volumename | find "%Vol2%" if errorlevel 0 if not errorlevel 1 set ID=Y wmic logicaldisk get volumename | find "%Vol3%" if errorlevel 0 if not errorlevel 1 set ID=Z REM 調査結果の表示、numの値で、serialnumberの中に一致するものがあったため、ID=X,Y,Zを表示。 REM serialnumberの中に一致するものがなかった場合、IDには何もセットせずに表示。 if defined ID ( echo Match found. ID=%ID% ) else ( echo No match found. ID=%ID% REM ドライブを加味したファイル名に変名 if defined ID rename C:\UsersTAC_\Desktop\Mp3_MergeDrive\FileName_ListUp.txt C:\UsersTAC_\Desktop\Mp3_MergeDrive\%ID% _FileName_ListUp.txt cls & echo "終了しました" & pause exit /b

  • .bat(バッチ)から.batを実行したいのですがエラーになってしまいます。

    <やりたい事> (1)メニュー的なバッチからOracleインストール後 (2)OracleのDB作成sqlを実行する.bat(バッチ)を実行する。 <現状> メニュー的バッチから(2)をCALLで呼びだすと「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」とコンソールに表示されてしまいます。 コマンドの拡張子を実行できる設定になっている事は確認できています。 また、コマンドプロンプトから(2)のバッチを実行すると実行できました。 色々と調べて見たのですが原因、解決策が見つかりません。 どうか皆様のお力をお借りできればと思います。 宜しくお願いします。 ↓以下バッチの詳細 <(1)メニュー的なバッチ> ECHO OFF :Start ECHO. ECHO 1. ・・・ 運用APLデータベース設定 %P5% ECHO 99. ・・・ 終了 SET Process= SET Choice= SET /p Choice=Type 選択して下さい。 IF '%Choice%'=='1' GOTO MakeDB :MakeDB REM 5. 運用APLデータベース設定選択時 SET Process=運用APLデータベース設定 ECHO *** "%Process%"開始 *** REM 文字変換バッチ実行 CALL C:\TEMP\aaaa.bat IF ERRORLEVEL 1 GOTO ExceptionError :InputError REM 入力エラー時 ECHO 不正なパラメータが入力されました。 GOTO Start :ExceptionError REM 例外エラー時 ECHO ******** 失敗しました。 ******** GOTO Start :End REM バッチを終了する。 EXIT <(2)OracleのDB作成sqlを実行する.bat(バッチ)> SET ORACLE_INSTALL_DIR=C:\oraclexe SET ORACLE_BIN_DIR=%ORACLE_INSTALL_DIR%\app\oracle\product\10.2.0\server\BIN SET ADMIN_DIR=%ORACLE_INSTALL_DIR%\app\oracle\admin\XE SET ORADATA_DIR=%ORACLE_INSTALL_DIR%\oradata\XE SET DBS_DIR=%ORACLE_INSTALL_DIR%\app\oracle\product\10.2.0\server\dbs SET USERNAME=aaa SET PASSWORD=bbb REM // LOGファイル名用に日付の取得 // FOR /F "tokens=1,2,3 delims=/, " %%i IN ('date /t') DO SET SYSDATE=%%i%%j%%k REM // 「Win31J」に文字変換 // ECHO 文字変換開始 %date% %time% >> "C:\install%SYSDATE%.log" "%ORACLE_BIN_DIR%\sqlplus" %USERNAME%/%PASSWORD% as sysdba @C:\TEMP\Drop.sql >> "C:\install%SYSDATE%.log" IF ERRORLEVEL 1 GOTO ExceptionError ECHO DBユーザー作成開始 %date% %time% >> "C:\install%SYSDATE%.log" "%ORACLE_BIN_DIR%\sqlplus" %USERNAME%/%PASSWORD% as sysdba @C:\TEMP\CreateDB.sql >> "C:\install%SYSDATE%.log" IF ERRORLEVEL 1 GOTO ExceptionError

  • batによるiniの読み込み。

    宜しくお願いします。 表題の通りなのですが、batファイルでiniを読み込み、それを基にログの出力やデータのバックアップをするには、どのようにすれば良いのでしょうか? バックアップ方法は、"robocopy"です。 以下に、現状の"bat"と"ini"を記載します。(bat内で処理させたい流れです) #####【backup.bat】##### REM iniファイルの読み込み。 REM 確認できなかったら、異常終了する。 IF NOT EXIST backup.ini ( (echo !date! !time! iniファイル[backup.ini]がありません) exit /b 16 ) REM ログの出力先フォルダチェック。 REM 指定のパスに存在しない場合は、作成する。 IF NOT EXIST %LOG%. ( mkdir %LOG% ) REM バックアップ元/バックアップ先フォルダが存在するか確認する。 REM 確認できなかったら、異常終了する。 REM 異常終了の場合、失敗ログを変数"%LOG%"に出力する。 IF NOT EXIST %FOLDER% %BK_FOLDER% ( (echo !date! !time! 対象フォルダ[%FOLDER% %BK_FOLDER%]がありません。) >> %LOG% SET RTN_CD=16 SET GOTO RTN_END ) ) REM robocopy実行 FOR /F "tokens=1,2" %%A in ('type %INI%') do ( set %FOLDER%=%%A set %BK_FOLDER%=%%B ) robocopy %FOLDER% %BK_FOLDER% /IS /MIR /COPYALL REM robocopyによるバックアップが正常終了したか確認する。 REM 正常終了した場合は、成功ログを変数"%LOG%"に出力する。 "ここはまだ分かりませんので、無視しても構いません。 もし大丈夫でしたら、ご教授お願いします。" #####【backup.ini】##### '#ログの出力先 LOG=D:\log '#バックアップ元フォルダ FORDER="M:\testfolder" '#バックアップ先フォルダ BK_FORDER="Z:\bkupfolder" です。 最近、batファイル等について独学で学び始めたばかりのため困っています。 各サイト等を参照しているのですが、どうしても上手く出来ません。 コマンド操作の理解を少しずつでも深めたいので、お手数をかけますが、ご教授を宜しくお願いします。

  • batファイルの実行について

    batファイルを作成しました。 (ATコマンドにてスケジュールさせたいと考えてます。) ファイル自体をダブルクリックで実行すると正常に処理が完了しますが、コマンドプロンプトから実行しようとすると以下のエラーが発生します。 〓〓〓〓〓〓〓〓〓〓〓〓 C:\>cmd /c "E:\MirroringTool\SimpleFolderMirror\test.bat" 指定した名前は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されません。 〓〓〓〓〓〓〓〓〓〓〓〓 実行させたいbatファイルは以下のとおりです。 〓〓〓〓〓〓〓〓〓〓〓〓 echo off cls rem ↓SimpleFolderMirror.exeを解凍したフォルダ SET EXEFOLDER_PATH="E:\MirroringTool\SimpleFolderMirror\" rem ↓ログの出力フォルダ・ファイル SET LOG_DIR="E:\MirroringTool\SimpleFolderMirror\logs\" rem ↓ミラー元フォルダ1 SET COPY_FROM_PATH_01="S:\" rem ↓ミラー先フォルダ1 SET COPY_TO_PATH_01="E:\ORANT\OWS" cd %EXEFOLDER_PATH% SimpleFolderMirror.exe %COPY_FROM_PATH_01% %COPY_TO_PATH_01% > %LOG_DIR%logs.txt 〓〓〓〓〓〓〓〓〓〓〓〓 cd %EXEFOLDER_PATH%のところまでは処理は完了しているようなので、最後の行のところで発生しているようです。 何が原因でエラーが発生してしまっているのでしょうか? 宜しくお願い致します

  • batファイルでファイルの件数取得

    batファイルでカレントフォルダ内のCSVファイルの件数を取得したく、 以下のbatファイルを作成しましたが、件数が多いと若干のズレがでます。 どこがダメなのでしょうか?ご教授お願いします。 for /f "usebackq" 55i in(`dir /B /S *.csv`) do ( SET /P<NUL=%%i: type %%i | find /c /v "" )

  • バッチファイルでFINDSTRを使って文字列検索をしたいが、ファイルが

    バッチファイルでFINDSTRを使って文字列検索をしたいが、ファイルが開けない (1)と(2)のバッチファイルを作りました。それぞれ単体で実行すると、エラーは出ません。 (1)と(2)を一緒にした(3)というバッチファイルで実行すると、FINDSTRのところで、 「ファイルを開くことができません」というエラーが出て、途中でとまってしまいます。 エラーを出さずに実行する方法は何かないでしょうか? (A.batは、CドライブにあるWord.exeを実行するだけのバッチファイルです。) どうぞよろしくお願いします。 【(3)の中身】 call A.bat >kekka.txt   ←この1行だけが(1)のバッチファイルの中身です GOTO kensaku GOTO :EOF ::文字列検索 :kensaku SET keyword=作成しました。   ←この行から下が(2)のバッチファイルの中身です FINDSTR %keyword% kensaku.txt > NUL GOTO kekka%ERRORLEVEL% GOTO :EOF :kekka0 REM 文字列あり ECHO %keyword%がありました PAUSE > nul GOTO :EOF :kekka1 REM 文字列なし ECHO %keyword%はありませんでした。 PAUSE > nul GOTO :EOF